﻿
namespace Oddo.Concept.Crm.Common.Diagnostic
{
    using System;

    /// <summary>
    /// Gestionnaire d'envoie de rapport d'erreur par email
    /// </summary>
    public class EMailErrorReportManager : IErrorReportManager
    {
        /// <summary>
        /// Envoie un rapport d'erreur
        /// </summary>
        /// <param name="report">Une instance de type IErrorReport</param>
        public void SendErrorReport(IErrorReport report)
        {
            if (!ShouldSendReport) return;
        }

        /// <summary>
        /// Envoie un rapport d'erreur de manière asynchrone
        /// </summary>
        /// <param name="report">Une instance de type IErrorReport</param>
        public void SendErrorReportAsync(IErrorReport report)
        {
            if (!ShouldSendReport) return;
        }

        /// <summary>
        /// Obtient ou définit si le rapport d'erreur peut être envoyé
        /// </summary>
        public virtual bool ShouldSendReport { get; set; }

        /// <summary>
        /// Créé une nouvelle instance de type IErrorReport depuis une exception
        /// </summary>
        /// <param name="exception">Uen instance de type Exception</param>
        /// <returns>Une nouvelle instance de type IErrorReport</returns>
        public virtual IErrorReport CreateReportFromException(Exception exception)
        {
            return null;
        }
    }
}